/* ************************************************************************
> File Name:     quickSort.c
> Author:        程序员lyl
> 微信公众号:    雨特宙
> Created Time:  2024年04月10日 星期三 08时02分42秒
> Description:   
 ************************************************************************/

#include <stdio.h>

void quickSort(int arr[], int start, int end){
    if(start == end)
        return;
    int left = start;
    int right = end;
    int key = arr[left];
    while(left < right){
        if(arr[right] >= key)
            right--;
        if(arr[right] < key){
            arr[left++] = arr[right];
        }
        if(left > 0 && left < right){
            if(arr[left] <= key)
                left++;
            if(arr[left] > key){
                arr[right--] = arr[left];
            }
    
        }
    
    }
    arr[left] = key;
    if(left-1 > start)
        quickSort(arr,start,left-1);
    if(right + 1 < end)
        quickSort(arr, right+1, end);
}


int main(){
    int array[8] = {4, 5, 8, 1, 7, 2, 6, 3};
    quickSort(array,0,7);
    for(int i = 0; i < 8; i++){
        printf("%d ",array[i]);
    }
    return 0;
}
